#!/bin/bash
#
# can_recv_test.sh - CAN接收测试脚本
#
# 本脚本用于测试CAN总线通信，通过candump工具监听并显示CAN总线上的消息
# 使用前请确保已安装can-utils工具包并配置好CAN设备
#
# 使用方法: ./can_recv_test.sh [can设备名] [过滤ID]
# 例如: ./can_recv_test.sh can1        # 监听can1设备上的所有消息
#       ./can_recv_test.sh can1 123    # 只监听can1设备上ID为0x123的消息
# 按Ctrl+C终止脚本

# 启用命令回显，便于调试
set -x

# 默认设备为can1
CAN_DEV=${1:-can1}

# 如果提供了第二个参数作为过滤ID
if [ -n "$2" ]; then
    # 使用过滤器只显示指定ID的消息
    candump $CAN_DEV -e -t d -x -c -a -f $2:7FF
else
    # 显示所有消息
    candump $CAN_DEV -e -t d -x -c -a
fi

# candump参数说明:
# -e: 显示本地回显帧
# -t d: 显示时间戳（十进制格式）
# -x: 以十六进制显示数据
# -c: 彩色输出
# -a: 显示ASCII表示
# -f <过滤器>: 应用CAN ID过滤器，格式为 <ID>:<掩码>